package cn.myfirefly.moming.house.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.myfirefly.moming.house.dao.SpfTradeWageDao;
import cn.myfirefly.moming.house.entity.SpfTradeWage;
import cn.myfirefly.moming.house.model.SpfTradeWageDto;
import cn.myfirefly.moming.house.model.SpfTradeWageFilterDto;
import cn.myfirefly.core.Const;
import cn.myfirefly.core.model.PageResultDto;
import cn.myfirefly.utils.BeanUtil;
import cn.myfirefly.utils.StrUtil;

@Service
@Transactional
public class SpfTradeWageService {

	@Autowired
	private SpfTradeWageDao spfTradeWageDao;
	
	public PageResultDto<SpfTradeWage> getList(SpfTradeWageFilterDto dto) {
		
		return spfTradeWageDao.getList(dto);
	}
	
	public PageResultDto<SpfTradeWageDto> getList(SpfTradeWageDto dto) {
		
		return spfTradeWageDao.getList(dto);
	}
	
	public SpfTradeWageDto getSpfTradeWage(Integer id) {
		SpfTradeWage spfTradeWage = spfTradeWageDao.get(id);
		SpfTradeWageDto spfTradeWageDto = BeanUtil.copyBeans(SpfTradeWageDto.class, spfTradeWage);
		return spfTradeWageDto;
	}
	
	public String del(Integer id) {
		SpfTradeWage spfTradeWage = spfTradeWageDao.get(id);
		if (spfTradeWage == null) {
			return "该信息不存在，请尝试刷新列表后再操作。";
		}
		spfTradeWageDao.del(spfTradeWage);
		return Const.ResultCode.SUCCESS;
	}
	
	public Integer insert(SpfTradeWageDto dto) {
		SpfTradeWage spfTradeWage = BeanUtil.copyBeans(SpfTradeWage.class, dto);
		if (StrUtil.equals(dto.getGrantType(), "3")) {
			spfTradeWage.setCommissionAccountDate(dto.getCommissionAccountDate2());
		}
		return spfTradeWageDao.save(spfTradeWage);
	}
	
	public Integer update(SpfTradeWageDto dto) {
		SpfTradeWage spfTradeWage = spfTradeWageDao.get(dto.getId());
		if (spfTradeWage == null) {
			return -1;
		}
		spfTradeWage.setGrantType(dto.getGrantType());
		if (StrUtil.equals(dto.getGrantType(), "1")) {
			spfTradeWage.setCommissionAccountDate(dto.getCommissionAccountDate());
			spfTradeWage.setUnwebGrantDate(dto.getUnwebGrantDate());
			spfTradeWage.setGrantPercent(dto.getGrantPercent());
		} else if (StrUtil.equals(dto.getGrantType(), "2")) {
			spfTradeWage.setWebSignDate(dto.getWebSignDate());
			spfTradeWage.setReissueDate(dto.getReissueDate());
		} else if (StrUtil.equals(dto.getGrantType(), "3")) {
			spfTradeWage.setCommissionAccountDate(dto.getCommissionAccountDate2());
			spfTradeWage.setAllGrantDate(dto.getAllGrantDate());
		} else if (StrUtil.equals(dto.getGrantType(), "4")) {
			spfTradeWage.setFillWebSignDate(dto.getFillWebSignDate());
			spfTradeWage.setFillWebSignWillDate(dto.getFillWebSignWillDate());
			spfTradeWage.setFillWebSignPercent(dto.getFillWebSignPercent());
		}
		spfTradeWage.setModifyBy(dto.getModifyBy());
		spfTradeWage.setModifyDate(dto.getModifyDate());
		return spfTradeWageDao.save(spfTradeWage);
	}
}
